package cuadrantes;

import servicios.Servicio;
import empleados.Trabajador;

import java.util.Date;
import java.util.List;
import java.util.GregorianCalendar;
import java.util.Calendar;

import auxiliar.Turno;

public class Cuadrante {

	private Servicio servicio;
	private List<Trabajador> listaTrabajadores;
	private Trabajador [][] asignacionCuadrante;
	//fecha del lunes de la semana ke abarca el cuadrante
	private Date semana;
	//Constructor para hacer pruebas
	public Cuadrante (Servicio s){
		super();
		servicio = s;
	}
	private Cuadrante(Servicio servicio, List<Trabajador> listaTrabajadores,
			Trabajador[][] asignacionCuadrante,Date sem) {
		this.servicio = servicio;
		this.listaTrabajadores = listaTrabajadores;
		this.asignacionCuadrante = asignacionCuadrante;
		this.semana = sem;
	}
	public static Cuadrante crearCuadrante(Servicio servicio, List<Trabajador> listaTrabajadores,
			Trabajador[][] asignacionCuadrante,Date sem){
		return new Cuadrante(servicio,listaTrabajadores,asignacionCuadrante,sem);
	}
	public void asignarTrabajador(Cuadrante c, Trabajador t){
		c.listaTrabajadores.add(t);
	}
	
	/*el metodo obtener dia recibe la posicion de la fila de la matriz asignacion cuadrante (nuestra solucion),
	 *  y devuelve un objeto date ke representa a la fecha correspondiente a esa posicion 
	 * de la matriz. Recordemos ke la matriz abarca a todo el periodo de vigencia del servicio
	public Date obtenerDia (int p){
		Date fechaIni = servicio.getFechaIni();
		Calendar aux = Calendar.getInstance();
		aux.setTime(fechaIni);
		aux.add(Calendar.DATE, p);
		return aux.getTime();
	}
	/*el metodo obtener turno, recibe como parametro la posicion de la fila de la matriz asignacion cuadrante
	 * y devuelve el turno ke le corresponde para el servicio ke trata el cuadrante*/
	 
	public Turno obtenerTurno(int p){
		Turno [] h = this.servicio.getHorario();
		return h[p];
	}
	
}
